/***************************************************************************
 *  Filename: parsaxcmd.h
 *  Class: ParsaxCmd
 *
 *  Copyright 2012  Xander van Kooten
 *  <xandervk@gmail.com>
 *
 *  Copyright 2012  Mario Henrique Voorsluys
 *  <forcaeluz@gmail.com>
 *
 ****************************************************************************/

/*
 *
 * This file is part of Parsax-Remote-Controller.
 *
 *    Parsax-Remote-Controller is free software: you can redistribute it
 *    and/or modify it under the terms of the GNU General Public License
 *    as published by the Free Software Foundation, either version 3 of the
 *    License, or (at your option) any later version.
 *
 *    Parsax-Remote-Controller is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with Parsax-Remote-Controller.
 *    If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef PARSAXCMD_H
#define PARSAXCMD_H

#include <QObject>
#include "mastercommunicator.h"
#include "messageparser.h"

/*!
 \brief

*/
class ParsaxCmd : public QObject
{
    Q_OBJECT
public:
    /*!
     \brief

     \param parent
    */
    explicit ParsaxCmd(QObject *parent = 0);
    /*!
     \brief

    */
    ~ParsaxCmd();
    /*!
     \brief

    */
    void loadSettings();
    /*!
     \brief

    */
    void saveSettings();
    /*!
     \brief

    */
    void start();

signals:
    /*!
     \brief

    */
    void closeRequest();
public slots:

private:
    MasterCommunicator *communicationHandler; /*!< TODO */
    MessageParser *parser; /*!< TODO */
    QString slaveip; /*!< TODO */
    int slaveport; /*!< TODO */
    QTextStream output; /*!< TODO */
    QTextStream input; /*!< TODO */
    QString in; /*!< TODO */
    /*!
     \brief

    */
    void showSettings();
    /*!
     \brief

    */
    void changeSettings();
    /*!
     \brief

    */
    void showRemoteSettings();
    /*!
     \brief

    */
    void changeRemoteSettings();
    /*!
     \brief

    */
    void startRemoteProgram();
    /*!
     \brief

    */
    void stopRemoteProgram();
    /*!
     \brief

    */
    void restartRemoteProgram();

private slots:

};

#endif // PARSAXCMD_H
